﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.ClienteWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.EstabelecimentoWS;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.EventoWs;

namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class ClienteVerEventosFoiConvidado : System.Web.UI.Page
    {
        
        PubClub_Evento_WS webServiceEventos = new PubClub_Evento_WS();
        PubClub_Cliente_WS webServiceCliente = new PubClub_Cliente_WS();
        PubClub_Estabelecimento_WS webServiceEstabelecimento = new PubClub_Estabelecimento_WS();

        ObjetoCliente cliente = new ObjetoCliente();
        ObjetoEstabelecimento estabelecimento;
        ObjetoCliente organizador;
         ObjetoEvento[] listaEventosConvitesAceitos;
         ObjetoEvento[] listaEventosConvitesPendentes;
         ObjetoEvento[] listaEventosConvitesRecusados;

        protected void Page_Load(object sender, EventArgs e)
        {
            
            if (Session["Cliente"] == null)
            {
                Response.Redirect("Login.aspx");
            }
            else
            {
                cliente = webServiceCliente.GetCliente(Convert.ToInt32(Session["Cliente"]));              

            }

            TableHeaderRow linhaCabecalho = new TableHeaderRow();
            TableHeaderCell celulaCabecalhoTituloDoEvento = new TableHeaderCell();
            TableHeaderCell celulaCabecalhoDescricaoDoEvento = new TableHeaderCell();
            TableHeaderCell celulaCabecalhoLocalDoEvento = new TableHeaderCell();
            TableHeaderCell celulaCabecalhoDataDoEvento = new TableHeaderCell();
            TableHeaderCell celulaCabecalhoOrganizadorDoEvento = new TableHeaderCell();
            TableHeaderCell celulaCabecalhoStatusDoEvento = new TableHeaderCell();

            Label labelCabecalhoTituloDoEvento = new Label();
            Label labelCabecalhoDescricaoDoEvento = new Label();
            Label labelCabecalhoDataDoEvento = new Label();
            Label labelCabecalhoLocalDoEvento = new Label();
            Label labelCabecalhoOrganizadorDoEvento = new Label();
            Label labelCabecalhoStatusDoEvento = new Label();

            labelCabecalhoTituloDoEvento.Text = "Título do evento";
            celulaCabecalhoTituloDoEvento.Controls.Add(labelCabecalhoTituloDoEvento);
            linhaCabecalho.Cells.Add(celulaCabecalhoTituloDoEvento);

            labelCabecalhoDescricaoDoEvento.Text = "Descricão";
            celulaCabecalhoDescricaoDoEvento.Controls.Add(labelCabecalhoDescricaoDoEvento);
            linhaCabecalho.Cells.Add(celulaCabecalhoDescricaoDoEvento);

            labelCabecalhoLocalDoEvento.Text = "Local";
            celulaCabecalhoLocalDoEvento.Controls.Add(labelCabecalhoLocalDoEvento);
            linhaCabecalho.Cells.Add(celulaCabecalhoLocalDoEvento);

            labelCabecalhoDataDoEvento.Text = "Data";
            celulaCabecalhoDataDoEvento.Controls.Add(labelCabecalhoDataDoEvento);
            linhaCabecalho.Cells.Add(celulaCabecalhoDataDoEvento);     

            labelCabecalhoOrganizadorDoEvento.Text = "Organizador";
            celulaCabecalhoOrganizadorDoEvento.Controls.Add(labelCabecalhoOrganizadorDoEvento);
            linhaCabecalho.Cells.Add(celulaCabecalhoOrganizadorDoEvento);

            labelCabecalhoStatusDoEvento.Text = "Status do convite";                
            celulaCabecalhoStatusDoEvento.Controls.Add(labelCabecalhoStatusDoEvento);
            linhaCabecalho.Cells.Add(celulaCabecalhoStatusDoEvento);

            tabelaEventos.Rows.Add(linhaCabecalho);

            listaEventosConvitesAceitos = webServiceEventos.EventosConvidados(cliente.ClienteId, true, 2);
            listaEventosConvitesPendentes = webServiceEventos.EventosConvidados(cliente.ClienteId, true, 3);
            listaEventosConvitesRecusados = webServiceEventos.EventosConvidados(cliente.ClienteId, true, 1);

            foreach (var item in listaEventosConvitesAceitos)
            {
                TableRow linhaDadosDoEvento = new TableRow();

                TableCell celulaNomeDoEvento = new TableCell();
                Label labelNomeDoEvento = new Label();

                TableCell celulaDescricaoDoEvento = new TableCell();
                Label labelDescricaoDoEvento = new Label();

                TableCell celulaLocalDoEvento = new TableCell();
                Label labelLocalDoEvento = new Label();           

                TableCell celulaDataDoEvento = new TableCell();
                Label labelDataDoEvento = new Label();

                TableCell celulaOrganizadorDoEvento = new TableCell();
                Label labelOrganizadorDoEvento = new Label();

                TableCell celulaStatusDoEvento = new TableCell();
                Label labelStatusDoEvento = new Label();

                estabelecimento = webServiceEstabelecimento.GetEstabelecimento(item.EstabelecimentoId);
                organizador = webServiceCliente.GetCliente(item.Organizador);

                labelNomeDoEvento.Text = item.Titulo;
                celulaNomeDoEvento.Controls.Add(labelNomeDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaNomeDoEvento);
                
                labelDescricaoDoEvento.Text = item.Descricao;
                celulaDescricaoDoEvento.Controls.Add(labelDescricaoDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaDescricaoDoEvento);

                labelLocalDoEvento.Text = estabelecimento.NomeFantasia;
                celulaLocalDoEvento.Controls.Add(labelLocalDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaLocalDoEvento);

                labelDataDoEvento.Text = item.DataHora.ToString();
                celulaDataDoEvento.Controls.Add(labelDataDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaDataDoEvento);

                labelOrganizadorDoEvento.Text = organizador.Nome;
                celulaOrganizadorDoEvento.Controls.Add(labelOrganizadorDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaOrganizadorDoEvento);

                labelStatusDoEvento.Text = "Aceito.";
                labelStatusDoEvento.ForeColor = System.Drawing.Color.Green;
                celulaStatusDoEvento.Controls.Add(labelStatusDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaStatusDoEvento);

                tabelaEventos.Rows.Add(linhaDadosDoEvento);
                
            }

            foreach (var item in listaEventosConvitesRecusados)
            {
                TableRow linhaDadosDoEvento = new TableRow();

                TableCell celulaNomeDoEvento = new TableCell();
                Label labelNomeDoEvento = new Label();

                TableCell celulaDescricaoDoEvento = new TableCell();
                Label labelDescricaoDoEvento = new Label();

                TableCell celulaLocalDoEvento = new TableCell();
                Label labelLocalDoEvento = new Label();

                TableCell celulaDataDoEvento = new TableCell();
                Label labelDataDoEvento = new Label();

                TableCell celulaOrganizadorDoEvento = new TableCell();
                Label labelOrganizadorDoEvento = new Label();

                TableCell celulaStatusDoEvento = new TableCell();
                Label labelStatusDoEvento = new Label();

                estabelecimento = webServiceEstabelecimento.GetEstabelecimento(item.EstabelecimentoId);
                organizador = webServiceCliente.GetCliente(item.Organizador);

                labelNomeDoEvento.Text = item.Titulo;
                celulaNomeDoEvento.Controls.Add(labelNomeDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaNomeDoEvento);

                labelDescricaoDoEvento.Text = item.Descricao;
                celulaDescricaoDoEvento.Controls.Add(labelDescricaoDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaDescricaoDoEvento);

                labelLocalDoEvento.Text = estabelecimento.NomeFantasia;
                celulaLocalDoEvento.Controls.Add(labelLocalDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaLocalDoEvento);

                labelDataDoEvento.Text = item.DataHora.ToString();
                celulaDataDoEvento.Controls.Add(labelDataDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaDataDoEvento);

                labelOrganizadorDoEvento.Text = organizador.Nome;
                celulaOrganizadorDoEvento.Controls.Add(labelOrganizadorDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaOrganizadorDoEvento);

                labelStatusDoEvento.Text = "Recusado.";
                labelStatusDoEvento.ForeColor = System.Drawing.Color.Red;
                celulaStatusDoEvento.Controls.Add(labelStatusDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaStatusDoEvento);

                tabelaEventos.Rows.Add(linhaDadosDoEvento);

            }

            foreach (var item in listaEventosConvitesPendentes)
            {
                TableRow linhaDadosDoEvento = new TableRow();

                TableCell celulaNomeDoEvento = new TableCell();
                Label labelNomeDoEvento = new Label();

                TableCell celulaDescricaoDoEvento = new TableCell();
                Label labelDescricaoDoEvento = new Label();

                TableCell celulaLocalDoEvento = new TableCell();
                Label labelLocalDoEvento = new Label();

                TableCell celulaDataDoEvento = new TableCell();
                Label labelDataDoEvento = new Label();

                TableCell celulaOrganizadorDoEvento = new TableCell();
                Label labelOrganizadorDoEvento = new Label();

                TableCell celulaStatusDoEvento = new TableCell();
                Label labelStatusDoEvento = new Label();

                estabelecimento = webServiceEstabelecimento.GetEstabelecimento(item.EstabelecimentoId);
                organizador = webServiceCliente.GetCliente(item.Organizador);

                labelNomeDoEvento.Text = item.Titulo;
                celulaNomeDoEvento.Controls.Add(labelNomeDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaNomeDoEvento);

                labelDescricaoDoEvento.Text = item.Descricao;
                celulaDescricaoDoEvento.Controls.Add(labelDescricaoDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaDescricaoDoEvento);

                labelLocalDoEvento.Text = estabelecimento.NomeFantasia;
                celulaLocalDoEvento.Controls.Add(labelLocalDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaLocalDoEvento);

                labelDataDoEvento.Text = item.DataHora.ToString();
                celulaDataDoEvento.Controls.Add(labelDataDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaDataDoEvento);

                labelOrganizadorDoEvento.Text = organizador.Nome;
                celulaOrganizadorDoEvento.Controls.Add(labelOrganizadorDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaOrganizadorDoEvento);

                labelStatusDoEvento.Text = "Pendente";
                labelStatusDoEvento.ForeColor = System.Drawing.Color.Gray;
                celulaStatusDoEvento.Controls.Add(labelStatusDoEvento);
                linhaDadosDoEvento.Cells.Add(celulaStatusDoEvento);

                tabelaEventos.Rows.Add(linhaDadosDoEvento);

            }



            

        }
    }
}